iT邦幫忙

第 11 屆 iThome 鐵人賽

1
Software Development

在後花園遇見LP,Laravel及PHP的甜蜜糾纏,火熱上映系列 第 43

✾後花園D43✾-多元的 多 對 多 關係? Part 3( Many To Many Relationships 資料庫及 postman 運行 )

  • 分享至 

  • xImage
  •  

本系列文的環境狀態,可點擊此連結後花園環境參考

用 POSTMAN 查詢花種有哪些買家購買

圖解

在資料庫看到會有點像這樣的關係

用 POSTMAN 查詢買家購買了哪些花種

這邊程式碼要再稍微增加一些內容,才能形成想要的結果

controller 部份

路徑:app/Http/Controllers/FlowerBuyerController.php
主要新增了功能 public function BuyerToMany ($id)

<?php

namespace App\Http\Controllers;


use App\Flower;
use App\Buyer;


class FlowerBuyerController extends Controller
{
    public function ManyToMany($id)
    {
        $FBC = Flower::where('id',$id)
        ->with('buyers')
        ->get();

        return $FBC;
    }

    public function BuyerToMany($id)
    {
        $FBC = Buyer::where('id',$id)
            ->with('flowers')
            ->get();

        return $FBC;
    }
}

model 部份

路徑:app/Buyer.php
主要新增了 ->withPivot('bunch')

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Buyer extends Model
{
    protected $fillable = ['buyname'];

    public function flowers()
    {
        // 買家的購買紀錄屬於多種花,並綁定樞紐欄位
        return $this->belongsToMany('App\Flower','flower_buyer')->withPivot('bunch');
    }

}

route 部份

路徑:routes/api.php

Route::get('/flower/buyertomany/{id}', 'FlowerBuyerController@BuyerToMany');

圖解

在資料庫看到會有點像這樣的關係

其實主要就是靠著 flower_buyer table ,充當樞紐表,締結不同的表單形成相依關聯性。

參考連結:
❁ Laravel 官方 - Eloquent: Relationships
❁ PHP laravel中的多對多關係例項詳解
❁ Charllen 大 - Laravel新手基礎訓-Eloquent: Relationships-One to Many


上一篇
✾後花園D42✾-多元的 多 對 多 關係? Part 2( Many To Many Relationships 播種及控制器、路由 )
下一篇
✾後花園D44✾ Flower 留言版 CRUD Part 1( 會員留言板 model 及 migration )
系列文
在後花園遇見LP,Laravel及PHP的甜蜜糾纏,火熱上映49
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言